package com.test.socket.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * TCP（Transmission Control Protocol，传输控制协议）是面向连接的协议，也就是说，在收发数据前，必须和对方建立可靠的连接。
 *      一个TCP连接必须要经过三次“对话”才能建立起来
 *      TCP建立连接要进行3次握手，而断开连接要进行4次
 *      TCP的包头结构：
 * 	        源端口 16位；
 * 	        目标端口 16位；
 * 	        序列号 32位；
 * 	        回应序号 32位；
 * 	        TCP头长度 4位；
 * 	        reserved 6位；
 * 	        控制代码 6位；
 * 	        窗口大小 16位；
 * 	        偏移量 16位；
 * 	        校验和 16位；
 * 	 UDP使用尽最大努力交付，即不保证可靠交付， 因此主机不需要维持复杂的链接状态表
 * 	 zj: udp_ DatagramPacket(打包 byte[])\DatagramSocket [receive_send ]
 */
public class UdpClientDemo {

    public static void main(String[] args) throws IOException {
        InetAddress address=InetAddress.getByName("localhost");
        byte[] sendData="Hello,w_s_y_p".getBytes();
        DatagramPacket sendPacket=new
                DatagramPacket(sendData,sendData.length,address,8080);
        DatagramSocket datagramSocket=new DatagramSocket();
        datagramSocket.send(sendPacket);
    }
}
